草庐IT

java try finally 阻止关闭流

全部标签

java - 即使在关闭 session 后,Hibernate 也会在 oracle db 中保持非 Activity session

在我的hibernate应用程序中,我编写了以下用于将EmployeeRegistration对象保存到oracle数据库中的代码。publicIntegersubmitDetails(EmployeeRegistrationes){Sessionsession=factory.openSession();Transactiontx=null;IntegeremployeeID=null;try{tx=session.beginTransaction();employeeID=(Integer)session.save(es);session.flush();tx.commit();}

java - 已签名的 JAR 被 Java 安全阻止

我绞尽脑汁想知道为什么当我使用以前使用过的代码签名证书对我的JAR进行签名时,我仍然会看到一个Java安全应用程序被阻止的对话框,其中规定我的应用程序是自签名的:但是,当我从一台我没有用来签署应用程序的机器上运行jarsignerverify命令时(为了匿名,将实际公司名称替换​​为Acme):jarsigner-verify-certs-verboseRegistrySafeLauncher.jars821WedOct2109:25:42BST2015META-INF/MANIFEST.MFX.509,CN="AcmeSoftware,Inc.",OU=AcmeSoftwareCor

Java Resource InputStream 正在关闭?

我正在将我们的Java代码库从Java7(80)迁移到Java8(162)。(是的……我们处于技术的最前沿。)切换后,我在高度并发的环境中从部署的jar加载XML资源文件时遇到问题。正在使用try-with-resources访问资源文件并通过SAX解析:try{SAXParserparser=SAXParserFactory.newInstance().newSAXParser();try(InputStreamin=MyClass.class.getResourceAsStream("resource.xml")){parser.parse(in,newDefaultHandler

java - glassPane 没有阻止输入

我用java构建了一个小型GUI游戏,有时我使用glassPane暂时阻止所有鼠标输入。我以前使用过glassPane没有任何问题,但这次它不会阻止鼠标输入。因此,在启用glassPane的情况下,我仍然可以按下驻留在contentPane上的按钮,我确定它已启用,因为我可以看到我在其上绘制的内容。这是一小段显示问题的可运行代码:importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Toolkit;importjavax.swing.JButton;importjavax.swing.JFrame;importjava

java - 关闭 BufferedReader 和 System.in

Readerrdr=newInputStreamReader(System.in);BufferedReaderbr=newBufferedReader(rdr);Strings;s=br.readLine();br.close();Scannersc=newScanner(System.in);s=sc.nextLine();System.out.print(s);我注意到如果我关闭BufferedReader,我将无法再从键盘插入输入,因为System.in不知何故关闭了。无论如何我可以保留br.close()(我需要它来删除文件)然后从键盘添加更多输入吗?

java - 在 Java 中,为什么 readLine() 会阻塞已关闭的套接字连接?

我有一个简单的客户端/服务器应用程序。服务器设置为如果在N秒内没有数据进入,则会发生超时并关闭套接字连接。我通过Socket.setSoTimeout()执行此操作。如果客户端挂起,一切正常。但是,如果客户端死了(例如,我用Ctrl-C杀死它),那么readLine()永远不会超时。这是服务器代码,如果有区别的话:publicvoidrun(){PrintWriterout=null;BufferedReaderin=null;try{sock.setSoTimeout(10000);out=newPrintWriter(sock.getOutputStream(),true);in=

java - 在我的黑莓 CustomMenu 中调用 native MenuItem(切换应用程序、关闭等)

我需要在我的黑莓应用程序中创建一个自定义菜单,以便我可以管理它的外观。我通过创建一个扩展PopupScreen的类并将我的MenuItem作为带有抽象invokeAction的自定义LabelField来创建我的自定义菜单()方法。我将invokeAction()方法抽象为模拟MenuItem的run()方法。一切都很好,但我记得一件事。如果我的老板要求我实现nativeMenuItem,如SwitchApplication和Close怎么办?我认为实现Close不会有问题,但是SwitchApplication和其他原生MenuItem,例如ShowKeyboard,这会给我带来麻烦

java - 阻止应用程序绑定(bind)到已绑定(bind)的套接字

如何防止Java应用程序绑定(bind)到另一个进程已在Windows上绑定(bind)到的套接字?我遇到一个问题,我的Java应用程序正在监听端口80。该应用程序可以正常启动并且没有报告任何异常。我不明白为什么我无法连接到端口80。其他端口工作正常。我检查了netstat是否有其他进程在80上监听并找到了Skype。我不认为这是可能的,但经过一些研究,我猜Skype正在使用SO_REUSEADDR选项进行监听。在这种状态下,接受申请是不确定的。我希望我的Java应用程序在此实例中因绑定(bind)异常(或其他)而失败。如果我可以通过Java访问该选项,我似乎可以使用SO_EXCLUS

java - Selenium 测试,在测试期间关闭浏览器连接并重新打开

我正在使用SeleniumWebdriver(Java)运行测试,在测试进行到一半时我想将浏览器设置为离线,执行几个步骤并再次打开浏览器连接。有没有一种简单的方法可以做到这一点,或者可以将浏览器代理更改为不存在的代理(离线模拟)并再次设置回有效的内容?我需要在在线、离线和在线之间再次保持浏览器缓存、浏览器本地存储区域和浏览器cookie。谢谢 最佳答案 您可以通过将WebDriversPageLoadTimeout设置为零来伪造它。在C#中,这对我有用:driver.Manage().Timeouts().SetPageLoadTi

java - 如何检查扫描仪是否已关闭

我在尝试编写两种方法时遇到了一些问题。两者都涉及使用扫描仪读取文件,其中每一行都以逗号分隔。这些方法是我的FileIO类的一部分。除了那个类之外,我还有另外两个类,Food和FoodArrayList。食物对象包含来自食物捐赠的几条信息(谁捐赠了这些元素,捐赠的原因等)。FoodArrayList类几乎具有与ArrayList相同的功能,除了我创建它只是为了存储Food对象。我纠结的两种方法如下:读入文件并简单地计算文件中的行数。它返回行数。此方法用于确定FoodArrayList的大小。这是因为文件的每一行都描述了一个Food对象。读入文件并将信息存储到FoodArrayList对象